

// const m = new Map();

// const tom = {name: 'tom'};


// m.set(tom, 90);

// console.log(m);


// const a = Symbol("abc");
// console.log(a);

// const b = Symbol("abc");
// console.log(b);
// console.log(a===b);

// const cache = {};
// cache[Symbol()] = "abc";

// const s1 = Symbol.for(false);
// const s2 = Symbol.for("false");

// console.log(s1===s2);

// const obj = {
//     [Symbol.toStringTag]: 'XObject'
// }

// console.log(obj.toString);

// Object.getOwnPropertySymbols(obj);

// const obj = {
//     store: ['foo', 'bar', 'baz'],
//     [Symbol.iterator]: function() {
//         let index = 0;
//         const self = this;
//         return {
//             next: function() {
//                 const result =  {
//                     value: self.store[index],
//                     done: index >= self.store.length
//                 }
//                 index++;
//                 return result;
//             }
//         }
//     }
// }

// for (const item of obj) {
//     console.log('循环体', item);
// }


// function *foo () {
//     console.log('zce');
//     return 100
// }

// const result = foo();
// console.log(result);

// console.log(result.next());


function *foo2 () {
    console.log('zce');
    yield 100;
    console.log('1111');
    yield 200
    console.log('2222');
    yield 300
}

const result2 = foo2();

console.log(result2.next())
console.log(result2.next())
console.log(result2.next())

